package org.begincode.core.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class VideoChapterExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public VideoChapterExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andVideoChapterIdIsNull() {
            addCriterion("video_chapter_id is null");
            return (Criteria) this;
        }

        public Criteria andVideoChapterIdIsNotNull() {
            addCriterion("video_chapter_id is not null");
            return (Criteria) this;
        }

        public Criteria andVideoChapterIdEqualTo(Integer value) {
            addCriterion("video_chapter_id =", value, "videoChapterId");
            return (Criteria) this;
        }

        public Criteria andVideoChapterIdNotEqualTo(Integer value) {
            addCriterion("video_chapter_id <>", value, "videoChapterId");
            return (Criteria) this;
        }

        public Criteria andVideoChapterIdGreaterThan(Integer value) {
            addCriterion("video_chapter_id >", value, "videoChapterId");
            return (Criteria) this;
        }

        public Criteria andVideoChapterIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("video_chapter_id >=", value, "videoChapterId");
            return (Criteria) this;
        }

        public Criteria andVideoChapterIdLessThan(Integer value) {
            addCriterion("video_chapter_id <", value, "videoChapterId");
            return (Criteria) this;
        }

        public Criteria andVideoChapterIdLessThanOrEqualTo(Integer value) {
            addCriterion("video_chapter_id <=", value, "videoChapterId");
            return (Criteria) this;
        }

        public Criteria andVideoChapterIdIn(List<Integer> values) {
            addCriterion("video_chapter_id in", values, "videoChapterId");
            return (Criteria) this;
        }

        public Criteria andVideoChapterIdNotIn(List<Integer> values) {
            addCriterion("video_chapter_id not in", values, "videoChapterId");
            return (Criteria) this;
        }

        public Criteria andVideoChapterIdBetween(Integer value1, Integer value2) {
            addCriterion("video_chapter_id between", value1, value2, "videoChapterId");
            return (Criteria) this;
        }

        public Criteria andVideoChapterIdNotBetween(Integer value1, Integer value2) {
            addCriterion("video_chapter_id not between", value1, value2, "videoChapterId");
            return (Criteria) this;
        }

        public Criteria andShortNameIsNull() {
            addCriterion("short_name is null");
            return (Criteria) this;
        }

        public Criteria andShortNameIsNotNull() {
            addCriterion("short_name is not null");
            return (Criteria) this;
        }

        public Criteria andShortNameEqualTo(String value) {
            addCriterion("short_name =", value, "shortName");
            return (Criteria) this;
        }

        public Criteria andShortNameNotEqualTo(String value) {
            addCriterion("short_name <>", value, "shortName");
            return (Criteria) this;
        }

        public Criteria andShortNameGreaterThan(String value) {
            addCriterion("short_name >", value, "shortName");
            return (Criteria) this;
        }

        public Criteria andShortNameGreaterThanOrEqualTo(String value) {
            addCriterion("short_name >=", value, "shortName");
            return (Criteria) this;
        }

        public Criteria andShortNameLessThan(String value) {
            addCriterion("short_name <", value, "shortName");
            return (Criteria) this;
        }

        public Criteria andShortNameLessThanOrEqualTo(String value) {
            addCriterion("short_name <=", value, "shortName");
            return (Criteria) this;
        }

        public Criteria andShortNameLike(String value) {
            addCriterion("short_name like", value, "shortName");
            return (Criteria) this;
        }

        public Criteria andShortNameNotLike(String value) {
            addCriterion("short_name not like", value, "shortName");
            return (Criteria) this;
        }

        public Criteria andShortNameIn(List<String> values) {
            addCriterion("short_name in", values, "shortName");
            return (Criteria) this;
        }

        public Criteria andShortNameNotIn(List<String> values) {
            addCriterion("short_name not in", values, "shortName");
            return (Criteria) this;
        }

        public Criteria andShortNameBetween(String value1, String value2) {
            addCriterion("short_name between", value1, value2, "shortName");
            return (Criteria) this;
        }

        public Criteria andShortNameNotBetween(String value1, String value2) {
            addCriterion("short_name not between", value1, value2, "shortName");
            return (Criteria) this;
        }

        public Criteria andChapterTitleIsNull() {
            addCriterion("chapter_title is null");
            return (Criteria) this;
        }

        public Criteria andChapterTitleIsNotNull() {
            addCriterion("chapter_title is not null");
            return (Criteria) this;
        }

        public Criteria andChapterTitleEqualTo(String value) {
            addCriterion("chapter_title =", value, "chapterTitle");
            return (Criteria) this;
        }

        public Criteria andChapterTitleNotEqualTo(String value) {
            addCriterion("chapter_title <>", value, "chapterTitle");
            return (Criteria) this;
        }

        public Criteria andChapterTitleGreaterThan(String value) {
            addCriterion("chapter_title >", value, "chapterTitle");
            return (Criteria) this;
        }

        public Criteria andChapterTitleGreaterThanOrEqualTo(String value) {
            addCriterion("chapter_title >=", value, "chapterTitle");
            return (Criteria) this;
        }

        public Criteria andChapterTitleLessThan(String value) {
            addCriterion("chapter_title <", value, "chapterTitle");
            return (Criteria) this;
        }

        public Criteria andChapterTitleLessThanOrEqualTo(String value) {
            addCriterion("chapter_title <=", value, "chapterTitle");
            return (Criteria) this;
        }

        public Criteria andChapterTitleLike(String value) {
            addCriterion("chapter_title like", value, "chapterTitle");
            return (Criteria) this;
        }

        public Criteria andChapterTitleNotLike(String value) {
            addCriterion("chapter_title not like", value, "chapterTitle");
            return (Criteria) this;
        }

        public Criteria andChapterTitleIn(List<String> values) {
            addCriterion("chapter_title in", values, "chapterTitle");
            return (Criteria) this;
        }

        public Criteria andChapterTitleNotIn(List<String> values) {
            addCriterion("chapter_title not in", values, "chapterTitle");
            return (Criteria) this;
        }

        public Criteria andChapterTitleBetween(String value1, String value2) {
            addCriterion("chapter_title between", value1, value2, "chapterTitle");
            return (Criteria) this;
        }

        public Criteria andChapterTitleNotBetween(String value1, String value2) {
            addCriterion("chapter_title not between", value1, value2, "chapterTitle");
            return (Criteria) this;
        }

        public Criteria andChapterAbstractIsNull() {
            addCriterion("chapter_abstract is null");
            return (Criteria) this;
        }

        public Criteria andChapterAbstractIsNotNull() {
            addCriterion("chapter_abstract is not null");
            return (Criteria) this;
        }

        public Criteria andChapterAbstractEqualTo(String value) {
            addCriterion("chapter_abstract =", value, "chapterAbstract");
            return (Criteria) this;
        }

        public Criteria andChapterAbstractNotEqualTo(String value) {
            addCriterion("chapter_abstract <>", value, "chapterAbstract");
            return (Criteria) this;
        }

        public Criteria andChapterAbstractGreaterThan(String value) {
            addCriterion("chapter_abstract >", value, "chapterAbstract");
            return (Criteria) this;
        }

        public Criteria andChapterAbstractGreaterThanOrEqualTo(String value) {
            addCriterion("chapter_abstract >=", value, "chapterAbstract");
            return (Criteria) this;
        }

        public Criteria andChapterAbstractLessThan(String value) {
            addCriterion("chapter_abstract <", value, "chapterAbstract");
            return (Criteria) this;
        }

        public Criteria andChapterAbstractLessThanOrEqualTo(String value) {
            addCriterion("chapter_abstract <=", value, "chapterAbstract");
            return (Criteria) this;
        }

        public Criteria andChapterAbstractLike(String value) {
            addCriterion("chapter_abstract like", value, "chapterAbstract");
            return (Criteria) this;
        }

        public Criteria andChapterAbstractNotLike(String value) {
            addCriterion("chapter_abstract not like", value, "chapterAbstract");
            return (Criteria) this;
        }

        public Criteria andChapterAbstractIn(List<String> values) {
            addCriterion("chapter_abstract in", values, "chapterAbstract");
            return (Criteria) this;
        }

        public Criteria andChapterAbstractNotIn(List<String> values) {
            addCriterion("chapter_abstract not in", values, "chapterAbstract");
            return (Criteria) this;
        }

        public Criteria andChapterAbstractBetween(String value1, String value2) {
            addCriterion("chapter_abstract between", value1, value2, "chapterAbstract");
            return (Criteria) this;
        }

        public Criteria andChapterAbstractNotBetween(String value1, String value2) {
            addCriterion("chapter_abstract not between", value1, value2, "chapterAbstract");
            return (Criteria) this;
        }

        public Criteria andChapterVideoUrlIsNull() {
            addCriterion("chapter_video_url is null");
            return (Criteria) this;
        }

        public Criteria andChapterVideoUrlIsNotNull() {
            addCriterion("chapter_video_url is not null");
            return (Criteria) this;
        }

        public Criteria andChapterVideoUrlEqualTo(String value) {
            addCriterion("chapter_video_url =", value, "chapterVideoUrl");
            return (Criteria) this;
        }

        public Criteria andChapterVideoUrlNotEqualTo(String value) {
            addCriterion("chapter_video_url <>", value, "chapterVideoUrl");
            return (Criteria) this;
        }

        public Criteria andChapterVideoUrlGreaterThan(String value) {
            addCriterion("chapter_video_url >", value, "chapterVideoUrl");
            return (Criteria) this;
        }

        public Criteria andChapterVideoUrlGreaterThanOrEqualTo(String value) {
            addCriterion("chapter_video_url >=", value, "chapterVideoUrl");
            return (Criteria) this;
        }

        public Criteria andChapterVideoUrlLessThan(String value) {
            addCriterion("chapter_video_url <", value, "chapterVideoUrl");
            return (Criteria) this;
        }

        public Criteria andChapterVideoUrlLessThanOrEqualTo(String value) {
            addCriterion("chapter_video_url <=", value, "chapterVideoUrl");
            return (Criteria) this;
        }

        public Criteria andChapterVideoUrlLike(String value) {
            addCriterion("chapter_video_url like", value, "chapterVideoUrl");
            return (Criteria) this;
        }

        public Criteria andChapterVideoUrlNotLike(String value) {
            addCriterion("chapter_video_url not like", value, "chapterVideoUrl");
            return (Criteria) this;
        }

        public Criteria andChapterVideoUrlIn(List<String> values) {
            addCriterion("chapter_video_url in", values, "chapterVideoUrl");
            return (Criteria) this;
        }

        public Criteria andChapterVideoUrlNotIn(List<String> values) {
            addCriterion("chapter_video_url not in", values, "chapterVideoUrl");
            return (Criteria) this;
        }

        public Criteria andChapterVideoUrlBetween(String value1, String value2) {
            addCriterion("chapter_video_url between", value1, value2, "chapterVideoUrl");
            return (Criteria) this;
        }

        public Criteria andChapterVideoUrlNotBetween(String value1, String value2) {
            addCriterion("chapter_video_url not between", value1, value2, "chapterVideoUrl");
            return (Criteria) this;
        }

        public Criteria andProhibitionMessageIsNull() {
            addCriterion("prohibition_message is null");
            return (Criteria) this;
        }

        public Criteria andProhibitionMessageIsNotNull() {
            addCriterion("prohibition_message is not null");
            return (Criteria) this;
        }

        public Criteria andProhibitionMessageEqualTo(String value) {
            addCriterion("prohibition_message =", value, "prohibitionMessage");
            return (Criteria) this;
        }

        public Criteria andProhibitionMessageNotEqualTo(String value) {
            addCriterion("prohibition_message <>", value, "prohibitionMessage");
            return (Criteria) this;
        }

        public Criteria andProhibitionMessageGreaterThan(String value) {
            addCriterion("prohibition_message >", value, "prohibitionMessage");
            return (Criteria) this;
        }

        public Criteria andProhibitionMessageGreaterThanOrEqualTo(String value) {
            addCriterion("prohibition_message >=", value, "prohibitionMessage");
            return (Criteria) this;
        }

        public Criteria andProhibitionMessageLessThan(String value) {
            addCriterion("prohibition_message <", value, "prohibitionMessage");
            return (Criteria) this;
        }

        public Criteria andProhibitionMessageLessThanOrEqualTo(String value) {
            addCriterion("prohibition_message <=", value, "prohibitionMessage");
            return (Criteria) this;
        }

        public Criteria andProhibitionMessageLike(String value) {
            addCriterion("prohibition_message like", value, "prohibitionMessage");
            return (Criteria) this;
        }

        public Criteria andProhibitionMessageNotLike(String value) {
            addCriterion("prohibition_message not like", value, "prohibitionMessage");
            return (Criteria) this;
        }

        public Criteria andProhibitionMessageIn(List<String> values) {
            addCriterion("prohibition_message in", values, "prohibitionMessage");
            return (Criteria) this;
        }

        public Criteria andProhibitionMessageNotIn(List<String> values) {
            addCriterion("prohibition_message not in", values, "prohibitionMessage");
            return (Criteria) this;
        }

        public Criteria andProhibitionMessageBetween(String value1, String value2) {
            addCriterion("prohibition_message between", value1, value2, "prohibitionMessage");
            return (Criteria) this;
        }

        public Criteria andProhibitionMessageNotBetween(String value1, String value2) {
            addCriterion("prohibition_message not between", value1, value2, "prohibitionMessage");
            return (Criteria) this;
        }

        public Criteria andLabelsIsNull() {
            addCriterion("labels is null");
            return (Criteria) this;
        }

        public Criteria andLabelsIsNotNull() {
            addCriterion("labels is not null");
            return (Criteria) this;
        }

        public Criteria andLabelsEqualTo(String value) {
            addCriterion("labels =", value, "labels");
            return (Criteria) this;
        }

        public Criteria andLabelsNotEqualTo(String value) {
            addCriterion("labels <>", value, "labels");
            return (Criteria) this;
        }

        public Criteria andLabelsGreaterThan(String value) {
            addCriterion("labels >", value, "labels");
            return (Criteria) this;
        }

        public Criteria andLabelsGreaterThanOrEqualTo(String value) {
            addCriterion("labels >=", value, "labels");
            return (Criteria) this;
        }

        public Criteria andLabelsLessThan(String value) {
            addCriterion("labels <", value, "labels");
            return (Criteria) this;
        }

        public Criteria andLabelsLessThanOrEqualTo(String value) {
            addCriterion("labels <=", value, "labels");
            return (Criteria) this;
        }

        public Criteria andLabelsLike(String value) {
            addCriterion("labels like", value, "labels");
            return (Criteria) this;
        }

        public Criteria andLabelsNotLike(String value) {
            addCriterion("labels not like", value, "labels");
            return (Criteria) this;
        }

        public Criteria andLabelsIn(List<String> values) {
            addCriterion("labels in", values, "labels");
            return (Criteria) this;
        }

        public Criteria andLabelsNotIn(List<String> values) {
            addCriterion("labels not in", values, "labels");
            return (Criteria) this;
        }

        public Criteria andLabelsBetween(String value1, String value2) {
            addCriterion("labels between", value1, value2, "labels");
            return (Criteria) this;
        }

        public Criteria andLabelsNotBetween(String value1, String value2) {
            addCriterion("labels not between", value1, value2, "labels");
            return (Criteria) this;
        }

        public Criteria andViewCountIsNull() {
            addCriterion("view_count is null");
            return (Criteria) this;
        }

        public Criteria andViewCountIsNotNull() {
            addCriterion("view_count is not null");
            return (Criteria) this;
        }

        public Criteria andViewCountEqualTo(Integer value) {
            addCriterion("view_count =", value, "viewCount");
            return (Criteria) this;
        }

        public Criteria andViewCountNotEqualTo(Integer value) {
            addCriterion("view_count <>", value, "viewCount");
            return (Criteria) this;
        }

        public Criteria andViewCountGreaterThan(Integer value) {
            addCriterion("view_count >", value, "viewCount");
            return (Criteria) this;
        }

        public Criteria andViewCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("view_count >=", value, "viewCount");
            return (Criteria) this;
        }

        public Criteria andViewCountLessThan(Integer value) {
            addCriterion("view_count <", value, "viewCount");
            return (Criteria) this;
        }

        public Criteria andViewCountLessThanOrEqualTo(Integer value) {
            addCriterion("view_count <=", value, "viewCount");
            return (Criteria) this;
        }

        public Criteria andViewCountIn(List<Integer> values) {
            addCriterion("view_count in", values, "viewCount");
            return (Criteria) this;
        }

        public Criteria andViewCountNotIn(List<Integer> values) {
            addCriterion("view_count not in", values, "viewCount");
            return (Criteria) this;
        }

        public Criteria andViewCountBetween(Integer value1, Integer value2) {
            addCriterion("view_count between", value1, value2, "viewCount");
            return (Criteria) this;
        }

        public Criteria andViewCountNotBetween(Integer value1, Integer value2) {
            addCriterion("view_count not between", value1, value2, "viewCount");
            return (Criteria) this;
        }

        public Criteria andCreateDatetimeIsNull() {
            addCriterion("create_datetime is null");
            return (Criteria) this;
        }

        public Criteria andCreateDatetimeIsNotNull() {
            addCriterion("create_datetime is not null");
            return (Criteria) this;
        }

        public Criteria andCreateDatetimeEqualTo(Date value) {
            addCriterion("create_datetime =", value, "createDatetime");
            return (Criteria) this;
        }

        public Criteria andCreateDatetimeNotEqualTo(Date value) {
            addCriterion("create_datetime <>", value, "createDatetime");
            return (Criteria) this;
        }

        public Criteria andCreateDatetimeGreaterThan(Date value) {
            addCriterion("create_datetime >", value, "createDatetime");
            return (Criteria) this;
        }

        public Criteria andCreateDatetimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_datetime >=", value, "createDatetime");
            return (Criteria) this;
        }

        public Criteria andCreateDatetimeLessThan(Date value) {
            addCriterion("create_datetime <", value, "createDatetime");
            return (Criteria) this;
        }

        public Criteria andCreateDatetimeLessThanOrEqualTo(Date value) {
            addCriterion("create_datetime <=", value, "createDatetime");
            return (Criteria) this;
        }

        public Criteria andCreateDatetimeIn(List<Date> values) {
            addCriterion("create_datetime in", values, "createDatetime");
            return (Criteria) this;
        }

        public Criteria andCreateDatetimeNotIn(List<Date> values) {
            addCriterion("create_datetime not in", values, "createDatetime");
            return (Criteria) this;
        }

        public Criteria andCreateDatetimeBetween(Date value1, Date value2) {
            addCriterion("create_datetime between", value1, value2, "createDatetime");
            return (Criteria) this;
        }

        public Criteria andCreateDatetimeNotBetween(Date value1, Date value2) {
            addCriterion("create_datetime not between", value1, value2, "createDatetime");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagIsNull() {
            addCriterion("delete_flag is null");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagIsNotNull() {
            addCriterion("delete_flag is not null");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagEqualTo(String value) {
            addCriterion("delete_flag =", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagNotEqualTo(String value) {
            addCriterion("delete_flag <>", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagGreaterThan(String value) {
            addCriterion("delete_flag >", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagGreaterThanOrEqualTo(String value) {
            addCriterion("delete_flag >=", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagLessThan(String value) {
            addCriterion("delete_flag <", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagLessThanOrEqualTo(String value) {
            addCriterion("delete_flag <=", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagLike(String value) {
            addCriterion("delete_flag like", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagNotLike(String value) {
            addCriterion("delete_flag not like", value, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagIn(List<String> values) {
            addCriterion("delete_flag in", values, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagNotIn(List<String> values) {
            addCriterion("delete_flag not in", values, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagBetween(String value1, String value2) {
            addCriterion("delete_flag between", value1, value2, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andDeleteFlagNotBetween(String value1, String value2) {
            addCriterion("delete_flag not between", value1, value2, "deleteFlag");
            return (Criteria) this;
        }

        public Criteria andGoodCountIsNull() {
            addCriterion("good_count is null");
            return (Criteria) this;
        }

        public Criteria andGoodCountIsNotNull() {
            addCriterion("good_count is not null");
            return (Criteria) this;
        }

        public Criteria andGoodCountEqualTo(Integer value) {
            addCriterion("good_count =", value, "goodCount");
            return (Criteria) this;
        }

        public Criteria andGoodCountNotEqualTo(Integer value) {
            addCriterion("good_count <>", value, "goodCount");
            return (Criteria) this;
        }

        public Criteria andGoodCountGreaterThan(Integer value) {
            addCriterion("good_count >", value, "goodCount");
            return (Criteria) this;
        }

        public Criteria andGoodCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("good_count >=", value, "goodCount");
            return (Criteria) this;
        }

        public Criteria andGoodCountLessThan(Integer value) {
            addCriterion("good_count <", value, "goodCount");
            return (Criteria) this;
        }

        public Criteria andGoodCountLessThanOrEqualTo(Integer value) {
            addCriterion("good_count <=", value, "goodCount");
            return (Criteria) this;
        }

        public Criteria andGoodCountIn(List<Integer> values) {
            addCriterion("good_count in", values, "goodCount");
            return (Criteria) this;
        }

        public Criteria andGoodCountNotIn(List<Integer> values) {
            addCriterion("good_count not in", values, "goodCount");
            return (Criteria) this;
        }

        public Criteria andGoodCountBetween(Integer value1, Integer value2) {
            addCriterion("good_count between", value1, value2, "goodCount");
            return (Criteria) this;
        }

        public Criteria andGoodCountNotBetween(Integer value1, Integer value2) {
            addCriterion("good_count not between", value1, value2, "goodCount");
            return (Criteria) this;
        }

        public Criteria andBadCountIsNull() {
            addCriterion("bad_count is null");
            return (Criteria) this;
        }

        public Criteria andBadCountIsNotNull() {
            addCriterion("bad_count is not null");
            return (Criteria) this;
        }

        public Criteria andBadCountEqualTo(Integer value) {
            addCriterion("bad_count =", value, "badCount");
            return (Criteria) this;
        }

        public Criteria andBadCountNotEqualTo(Integer value) {
            addCriterion("bad_count <>", value, "badCount");
            return (Criteria) this;
        }

        public Criteria andBadCountGreaterThan(Integer value) {
            addCriterion("bad_count >", value, "badCount");
            return (Criteria) this;
        }

        public Criteria andBadCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("bad_count >=", value, "badCount");
            return (Criteria) this;
        }

        public Criteria andBadCountLessThan(Integer value) {
            addCriterion("bad_count <", value, "badCount");
            return (Criteria) this;
        }

        public Criteria andBadCountLessThanOrEqualTo(Integer value) {
            addCriterion("bad_count <=", value, "badCount");
            return (Criteria) this;
        }

        public Criteria andBadCountIn(List<Integer> values) {
            addCriterion("bad_count in", values, "badCount");
            return (Criteria) this;
        }

        public Criteria andBadCountNotIn(List<Integer> values) {
            addCriterion("bad_count not in", values, "badCount");
            return (Criteria) this;
        }

        public Criteria andBadCountBetween(Integer value1, Integer value2) {
            addCriterion("bad_count between", value1, value2, "badCount");
            return (Criteria) this;
        }

        public Criteria andBadCountNotBetween(Integer value1, Integer value2) {
            addCriterion("bad_count not between", value1, value2, "badCount");
            return (Criteria) this;
        }

        public Criteria andReleaseStateIsNull() {
            addCriterion("release_state is null");
            return (Criteria) this;
        }

        public Criteria andReleaseStateIsNotNull() {
            addCriterion("release_state is not null");
            return (Criteria) this;
        }

        public Criteria andReleaseStateEqualTo(String value) {
            addCriterion("release_state =", value, "releaseState");
            return (Criteria) this;
        }

        public Criteria andReleaseStateNotEqualTo(String value) {
            addCriterion("release_state <>", value, "releaseState");
            return (Criteria) this;
        }

        public Criteria andReleaseStateGreaterThan(String value) {
            addCriterion("release_state >", value, "releaseState");
            return (Criteria) this;
        }

        public Criteria andReleaseStateGreaterThanOrEqualTo(String value) {
            addCriterion("release_state >=", value, "releaseState");
            return (Criteria) this;
        }

        public Criteria andReleaseStateLessThan(String value) {
            addCriterion("release_state <", value, "releaseState");
            return (Criteria) this;
        }

        public Criteria andReleaseStateLessThanOrEqualTo(String value) {
            addCriterion("release_state <=", value, "releaseState");
            return (Criteria) this;
        }

        public Criteria andReleaseStateLike(String value) {
            addCriterion("release_state like", value, "releaseState");
            return (Criteria) this;
        }

        public Criteria andReleaseStateNotLike(String value) {
            addCriterion("release_state not like", value, "releaseState");
            return (Criteria) this;
        }

        public Criteria andReleaseStateIn(List<String> values) {
            addCriterion("release_state in", values, "releaseState");
            return (Criteria) this;
        }

        public Criteria andReleaseStateNotIn(List<String> values) {
            addCriterion("release_state not in", values, "releaseState");
            return (Criteria) this;
        }

        public Criteria andReleaseStateBetween(String value1, String value2) {
            addCriterion("release_state between", value1, value2, "releaseState");
            return (Criteria) this;
        }

        public Criteria andReleaseStateNotBetween(String value1, String value2) {
            addCriterion("release_state not between", value1, value2, "releaseState");
            return (Criteria) this;
        }

        public Criteria andCourseIdIsNull() {
            addCriterion("course_id is null");
            return (Criteria) this;
        }

        public Criteria andCourseIdIsNotNull() {
            addCriterion("course_id is not null");
            return (Criteria) this;
        }

        public Criteria andCourseIdEqualTo(Integer value) {
            addCriterion("course_id =", value, "courseId");
            return (Criteria) this;
        }

        public Criteria andCourseIdNotEqualTo(Integer value) {
            addCriterion("course_id <>", value, "courseId");
            return (Criteria) this;
        }

        public Criteria andCourseIdGreaterThan(Integer value) {
            addCriterion("course_id >", value, "courseId");
            return (Criteria) this;
        }

        public Criteria andCourseIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("course_id >=", value, "courseId");
            return (Criteria) this;
        }

        public Criteria andCourseIdLessThan(Integer value) {
            addCriterion("course_id <", value, "courseId");
            return (Criteria) this;
        }

        public Criteria andCourseIdLessThanOrEqualTo(Integer value) {
            addCriterion("course_id <=", value, "courseId");
            return (Criteria) this;
        }

        public Criteria andCourseIdIn(List<Integer> values) {
            addCriterion("course_id in", values, "courseId");
            return (Criteria) this;
        }

        public Criteria andCourseIdNotIn(List<Integer> values) {
            addCriterion("course_id not in", values, "courseId");
            return (Criteria) this;
        }

        public Criteria andCourseIdBetween(Integer value1, Integer value2) {
            addCriterion("course_id between", value1, value2, "courseId");
            return (Criteria) this;
        }

        public Criteria andCourseIdNotBetween(Integer value1, Integer value2) {
            addCriterion("course_id not between", value1, value2, "courseId");
            return (Criteria) this;
        }

        public Criteria andOrderNumIsNull() {
            addCriterion("order_num is null");
            return (Criteria) this;
        }

        public Criteria andOrderNumIsNotNull() {
            addCriterion("order_num is not null");
            return (Criteria) this;
        }

        public Criteria andOrderNumEqualTo(Integer value) {
            addCriterion("order_num =", value, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumNotEqualTo(Integer value) {
            addCriterion("order_num <>", value, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumGreaterThan(Integer value) {
            addCriterion("order_num >", value, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumGreaterThanOrEqualTo(Integer value) {
            addCriterion("order_num >=", value, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumLessThan(Integer value) {
            addCriterion("order_num <", value, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumLessThanOrEqualTo(Integer value) {
            addCriterion("order_num <=", value, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumIn(List<Integer> values) {
            addCriterion("order_num in", values, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumNotIn(List<Integer> values) {
            addCriterion("order_num not in", values, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumBetween(Integer value1, Integer value2) {
            addCriterion("order_num between", value1, value2, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumNotBetween(Integer value1, Integer value2) {
            addCriterion("order_num not between", value1, value2, "orderNum");
            return (Criteria) this;
        }

        public Criteria andDowncodeUrlIsNull() {
            addCriterion("downcode_url is null");
            return (Criteria) this;
        }

        public Criteria andDowncodeUrlIsNotNull() {
            addCriterion("downcode_url is not null");
            return (Criteria) this;
        }

        public Criteria andDowncodeUrlEqualTo(String value) {
            addCriterion("downcode_url =", value, "downcodeUrl");
            return (Criteria) this;
        }

        public Criteria andDowncodeUrlNotEqualTo(String value) {
            addCriterion("downcode_url <>", value, "downcodeUrl");
            return (Criteria) this;
        }

        public Criteria andDowncodeUrlGreaterThan(String value) {
            addCriterion("downcode_url >", value, "downcodeUrl");
            return (Criteria) this;
        }

        public Criteria andDowncodeUrlGreaterThanOrEqualTo(String value) {
            addCriterion("downcode_url >=", value, "downcodeUrl");
            return (Criteria) this;
        }

        public Criteria andDowncodeUrlLessThan(String value) {
            addCriterion("downcode_url <", value, "downcodeUrl");
            return (Criteria) this;
        }

        public Criteria andDowncodeUrlLessThanOrEqualTo(String value) {
            addCriterion("downcode_url <=", value, "downcodeUrl");
            return (Criteria) this;
        }

        public Criteria andDowncodeUrlLike(String value) {
            addCriterion("downcode_url like", value, "downcodeUrl");
            return (Criteria) this;
        }

        public Criteria andDowncodeUrlNotLike(String value) {
            addCriterion("downcode_url not like", value, "downcodeUrl");
            return (Criteria) this;
        }

        public Criteria andDowncodeUrlIn(List<String> values) {
            addCriterion("downcode_url in", values, "downcodeUrl");
            return (Criteria) this;
        }

        public Criteria andDowncodeUrlNotIn(List<String> values) {
            addCriterion("downcode_url not in", values, "downcodeUrl");
            return (Criteria) this;
        }

        public Criteria andDowncodeUrlBetween(String value1, String value2) {
            addCriterion("downcode_url between", value1, value2, "downcodeUrl");
            return (Criteria) this;
        }

        public Criteria andDowncodeUrlNotBetween(String value1, String value2) {
            addCriterion("downcode_url not between", value1, value2, "downcodeUrl");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}